home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
telecomm
/
sticpsrc.lzh
/
SOURCE.ARC
/
SCROLL.S
< prev
next >
Wrap
Text File
|
1989-04-07
|
1KB
|
53 lines
/
/ REALLY FAST scroll-up of the screen for the Atari ST.
/ Used when "screen direct" is selected.
/
/ Base address of screen is passed as a parameter
/
.globl do_scroll_
.shri
do_scroll_:
movea.l 4(sp),a0 / Get logbase
movem.l ${a3-a5,d3-d7},-(sp) / Save registers used by C
/
moveq.l $63,d0 / 64 * 10 * 48 = 30720 bytes to go
lea 1280(a0),a0 / Point to second line of screen
scroll:
movem.l (a0)+,${a1-a5,d1-d7} / Get 48 bytes...
movem.l ${a1-a5,d1-d7},-1328(a0) / ... and move them up
movem.l (a0)+,${a1-a5,d1-d7} / Do that 10 times in line for speed
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
movem.l (a0)+,${a1-a5,d1-d7}
movem.l ${a1-a5,d1-d7},-1328(a0)
dbra d0,scroll / 64 times to go
moveq.l $31,d0 / 32 * 10 * 4 bytes to clear
clear: clr.l -(a0) / 10 times for speed
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
clr.l -(a0)
dbra d0,clear
/
movem.l (sp)+,${a3-a5,d3-d7} / Restore C registers
rts